(Very detailed explanation)